package com.example.review;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;


import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.example.review.notification.NotificationActivity;
import com.example.review.utils.skillUtils.MyApplication;

import java.io.File;

public class chapterEight2Activity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chapter_eight2);
        Button button=findViewById(R.id.sen_niti);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(chapterEight2Activity.this, NotificationActivity.class);
                //这个在活动  所以用getActivity()  四个参数分别是 上下文、0、Intent 对象、PendingIntent的行为
                PendingIntent pendingIntent=PendingIntent.getActivity(chapterEight2Activity.this, 0, intent, 0);

                //1 先创建NotificationManager实例
                NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                if(Build.VERSION.SDK_INT >= 26) {
                    //当sdk版本大于26
                    String id = "channel_1"; //channel的id
                    String description = "143";//channel的描述
                    int importance = NotificationManager.IMPORTANCE_MAX;//channel的重要性 最高等级
                    @SuppressLint("WrongConstant") NotificationChannel channel = new NotificationChannel(id, description, importance);
                    channel.enableLights(true);//震动
                    channel.enableVibration(true);//提示灯
                    manager.createNotificationChannel(channel);

                    Notification notification = new Notification.Builder(chapterEight2Activity.this, id)
                            .setContentTitle("title")
                           // .setContentText("This is content text")
                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(R.drawable.ic_launcher_background)
                            .setLargeIcon(BitmapFactory.decodeResource(getResources(),
                                    R.drawable.ic_launcher_background))

                            //有了这个，可以点击通知，从而打开林外一个活动
                            .setContentIntent(pendingIntent)
                            //点击通知后，通知自动消失
                            .setAutoCancel(true)
                            //通知当中显示一段长文字
                           // .setStyle(new Notification.BigTextStyle().bigText("111Learn how to build notifications, send and sync data, and use voice actions. Get the official Android IDE and developer tools to build apps for Android."))
                            //除了显示长文字之外，通知里还可以显示一张大图片
                            .setStyle(new Notification.BigPictureStyle().bigPicture (BitmapFactory.decodeResource(getResources(), R.drawable.message_left)))

                            .build();
                    //第一个参数是id ，要保证为每个通知所指定的id 都是不 同的。
                    // 第二个参数则是Notification 对象，这里直接将我们刚刚创建好的Notification 对象传入即可。
                    manager.notify(1, notification);
                }else {

                    //当sdk版本小于26
                    Notification notification = new NotificationCompat.Builder(chapterEight2Activity.this)
                            .setContentTitle("title")
                            .setContentText("This is content text")

                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(R.drawable.ic_launcher_background)
                            .setLargeIcon(BitmapFactory.decodeResource(getResources(),
                                    R.drawable.ic_launcher_background))

                            //有了这个，可以点击通知，从而打开林外一个活动
                            .setContentIntent(pendingIntent)
                            //点击通知后，通知自动消失
                            .setAutoCancel(true)
                            //可以在通知发出的时候播放一段音频，这样就能够更好地告知用户有通知到来
                            //setSound() 方法接收一个Uri 参数，所以在指定音频文件的时候还需要先获取到音频文件对应的URI
                            .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg")))
                            //设置震动 通知到来的时候立刻振动1秒，然后静止1秒，再振动1秒
                            .setVibrate(new long[] {0, 1000, 1000, 1000 })

                            .build();
                    manager.notify(1,notification);
                }
            }
        });

    }






//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_chapter_eight2);
//        Button button=findViewById(R.id.sen_niti);
//        button.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                //1 先创建NotificationManager实例
//                NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//                if(Build.VERSION.SDK_INT >= 26) {
//                    //当sdk版本大于26
//                    String id = "channel_1"; //channel的id
//                    String description = "143";//channel的描述
//                    int importance = NotificationManager.IMPORTANCE_MAX;//channel的重要性 最高等级
//                    @SuppressLint("WrongConstant") NotificationChannel channel = new NotificationChannel(id, description, importance);
//                    channel.enableLights(true);//震动
//                    channel.enableVibration(true);//提示灯
//                    manager.createNotificationChannel(channel);
//
//                    Notification notification = new Notification.Builder(chapterEight2Activity.this, id)
//                            .setContentTitle("title")
//                            .setContentText("This is content text")
//                            .setWhen(System.currentTimeMillis())
//                            .setSmallIcon(R.drawable.ic_launcher_background)
//                            .setLargeIcon(BitmapFactory.decodeResource(getResources(),
//                                    R.drawable.ic_launcher_background))
//                            .build();
//                    //第一个参数是id ，要保证为每个通知所指定的id 都是不 同的。
//                    // 第二个参数则是Notification 对象，这里直接将我们刚刚创建好的Notification 对象传入即可。
//                    manager.notify(1, notification);
//                }else {
//
//                    //当sdk版本小于26
//                    Notification notification = new NotificationCompat.Builder(chapterEight2Activity.this)
//                            .setContentTitle("title")
//                            .setContentText("This is content text")
//                            .setWhen(System.currentTimeMillis())
//                            .setSmallIcon(R.drawable.ic_launcher_background)
//                            .setLargeIcon(BitmapFactory.decodeResource(getResources(),
//                                    R.drawable.ic_launcher_background))
//                            .build();
//                    manager.notify(1,notification);
//                }
//            }
//        });
//
//    }
}